#!/bin/bash

# 清屏并显示信息
clear
echo -e "樱花云原创脚本官网：https://sakuraidc.cc/"
echo -e "樱花云 为您提供稳定可靠的云服务 国内服务器40元起，海外服务器20元起"
sleep 5s

# 检查是否是root用户
if [ "$EUID" -ne 0 ]; then
	    echo "请以root用户运行此脚本."
	        exit 1
fi

read -p "请输入新的SSH端口号: " PORT

# 验证端口号是否合法
if ! [[ "$PORT" =~ ^[0-9]+$ ]] || [ "$PORT" -lt 22 ] || [ "$PORT" -gt 65535 ]; then
	    echo "无效的端口号. 请输入22-65535之间的数字."
	        exit 1
fi

# 修改SSH配置文件
if [ -f /etc/ssh/sshd_config ]; then
	    sed -i "/^#Port 22/c\Port $PORT" /etc/ssh/sshd_config
	        sed -i "/^Port 22/c\Port $PORT" /etc/ssh/sshd_config
	else
		    echo "/etc/ssh/sshd_config 文件不存在."
		        exit 1
fi

# 配置防火墙规则
if command -v firewall-cmd &> /dev/null; then
	    # 使用firewalld
	        firewall-cmd --permanent --add-port=$PORT/tcp
		    firewall-cmd --reload
	    elif command -v iptables &> /dev/null; then
		        # 使用iptables
			    iptables -A INPUT -p tcp --dport $PORT -j ACCEPT
			        if [ -f /etc/sysconfig/iptables ]; then
					        iptables-save > /etc/sysconfig/iptables
						    elif [ -f /etc/iptables/rules.v4 ]; then
							            iptables-save > /etc/iptables/rules.v4
								        fi
								elif command -v ufw &> /dev/null; then
									    # 使用UFW
									        ufw allow $PORT/tcp
										    ufw reload
									    else
										        echo "未检测到firewalld, iptables或ufw, 请手动配置防火墙."
fi

# 重启SSH服务
if systemctl is-active --quiet sshd; then
	    systemctl restart sshd
    elif systemctl is-active --quiet ssh; then
	        systemctl restart ssh
	else
		    service ssh restart
fi

echo "SSH端口已修改为 $PORT 并且防火墙已配置. 请使用新的端口连接SSH."

exit 0

